package 设计模式.行为型模式.享元模式;

import java.util.HashMap;
import java.util.Map;

// 享元对象工厂 - 这里可以设置为单例模式
public class GoChessFactory {

    public GoChessFactory() {}
    // 静态内部类，用作单例实现
    private static class Pool {
        static final Map<String, GoChess> INSTANCE = new HashMap<>();
        // 静态代码块中复制
        static {
            INSTANCE.put("白色", WhiteGoChess.getInstance());
            INSTANCE.put("黑色", BlackGoChess.getInstance());
        }
    }
    // 获取享元对象的方法
    public static GoChess getInstance(String color) {
        // 享元池中获取
        return Pool.INSTANCE.get(color);
    }
}
